package cn.lzj.system.listener;

import cn.lzj.system.service.IPermissionScanService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener
@Slf4j
public class PermissionScanInitListener implements ServletContextListener {

    @Autowired
    private IPermissionScanService ipermissionScanService;
    @Override
    //容器启动结束，会执行这里
    //我们可以在这里扫描我们自定义的注解ProAuthrize
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        //这里面的业务可能随着接口的增多，执行时间会边长，所以需要new一个线程跑，才能不影响我们主线程的启动
        new Thread(new Runnable() {
            @Override
            public void run() {//匿名内部类
                System.out.println("权限初始化开始******************************************");
                ipermissionScanService.scanPermission();
                System.out.println("权限初始化结束******************************************");
            }
        }).start();
    }
    //容器销毁  ---  不用整，销毁程序就停止了
    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
       log.info("stop**************************************");
        System.out.println("stop******************************************");
    }
}